#!/bin/sh
# the next line restarts using wish \
exec wish "$0" "$@"

#package require Expect

#Procedure de gestion d'evenement on_click sur une listbox
proc selectionChangedLignesPCode {} {
	global fichier_client pipe_my_loop
	global fichier_ecriture
	#evénement sélectionné
	set selected_index [.lst_lignes_PCode curselection]
	#si un élément est sélectionné
  	if { $selected_index != "" } {
  		set couleur [.lst_lignes_PCode itemcget $selected_index -background]
  		#si ça couleur de fond est le rouge (point d'arret), on le met en blanc
  		if {$couleur == "red"} {
	  		.lst_lignes_PCode itemconfigure $selected_index -background gray
	  		.lst_lignes_PCode itemconfigure $selected_index -selectbackground gray
	  		#set valeur [.lstPointsArret get $selected_index]
	  		#set valeur [expr {$selected_index+1}]
	  		retirer_element .lstPointsArret $selected_index
	  	} else {
	  		.lst_lignes_PCode itemconfigure $selected_index -background red 
	  		.lst_lignes_PCode itemconfigure $selected_index -selectbackground red
	  		 #set valeur [expr {$selected_index+1}]
	  		.lstPointsArret insert end $selected_index
	  	}
  	}
  	puts "Contenu de la liste\n"
	set chaine "poar:"
	set liste [.lstPointsArret get 0 end]
	foreach elem $liste {
		set chaine "$chaine$elem$"
		puts $elem
	}
	set chaine "$chaine\n"
	puts $chaine
	puts $pipe_my_loop $chaine
}

#permet de retirer un élément d'une liste
proc retirer_element {lstElement element} {
	puts "L'element est $element"
	set i 0
	set liste [.lstPointsArret get 0 end]
	foreach elem $liste {
		puts "Element : $elem"
		if {$elem == $element} {
			puts "Element supprime"
			$lstElement delete $i
		}
		incr i
	}
}

#Procédure appellée au moment de l'appui sur le bouton "Exec" dans la partie PCode
proc Cmd_PCode_Exec {} {
	global fichier_ecriture pipe_my_loop texteLu
	puts $pipe_my_loop "exec:\n"
	flush $pipe_my_loop
	traitementMessages
}

#Procédure appellée au moment de l'appui sur le bouton "Next" dans la partie PCode
proc Cmd_PCode_Next {} {
	global fichier_ecriture pipe_my_loop texteLu
	puts $pipe_my_loop "next:\n"
	flush $pipe_my_loop
	traitementMessages
}

#Procédure appellée au moment de l'appui sur le bouton "Play" dans la partie PCode
proc Cmd_PCode_Play {} {
	global play_etat_timer
	
	if {$play_etat_timer == 0} {
		set play_etat_timer 1
		puts $pipe_my_loop "play:\n"		
	} else {
		set play_etat_timer 0
		puts $pipe_my_loop "stop:\n"
	}
	
}

